/**
 * 
 */
package org.vsg.stock.core.indicator.kline;

import java.util.List;

import org.vsg.stock.core.KLineStock;
import org.vsg.stock.core.indicator.ZigIndicator;
import org.vsg.stock.core.kline.DailyKLineStock;

/**
 * zig builder found for the crest and trough handle 
 * @author Bill Vison
 *
 */
public abstract class ZigBuilder {

	
	public static final String ALL_CREST = "ALL_CREST";
	
	public static final String ALL_TROUGH = "ALL_TROUGH";
	
	public static final String ALL = "ALL";
	
	/**
	 * handle build running cycle for the stock
	 */
	abstract void buildUp();
	
	/**
	 * 设定变化最低下限值的记录，用"%"数表示，输入时，指定的数是百分数，如 5 表示 5%
	 * @param threadholdValue
	 */	
	abstract void setThreshold(Double threadholdValue);
	
	/**
	 * defined indicateor import list
	 * @param importedList
	 */
	abstract void setDailyKLineStockList(List<DailyKLineStock> importedList);
	
	
	/**
	 * defined the kline stock attribute handle
	 * @return
	 */
	abstract void setKLineStockAttribute(KLineStock.Attribute stockAttribute );
	
	/**
	 * defined the result item
	 * @param itemsList
	 * @return
	 */
	abstract List<ZigIndicatorResultItem> getResultItems(String itemsList ) throws IndicatorBuilderNotExcutingException;
	
}
